#ifndef __8259A_H_
#define __8259A_H_

#ifdef __cplusplus
extern "C" {
#endif

// 下列函数主体实现在汇编文件 8259A.asm 中
void pic_init(void);            // 初始化可编程中断控制器 8259A - 级联
void write_m_EOI(void);         // 手动结束主片中断
void write_s_EOI(void);         // 手动结束从片中断
void read_m_ISR(void);          // 读主片 ISR 寄存器的值，返回值存入 al 寄存器
void read_s_ISR(void);          // 读从片 ISR 寄存器的值，返回值存入 al 寄存器
void read_m_IRR(void);          // 读主片 IRR 寄存器的值，返回值存入 al 寄存器
void read_s_IRR(void);          // 读从片 IRR 寄存器的值，返回值存入 al 寄存器
void read_m_IMR(void);          // 读主片 IMR 寄存器的值，返回值存入 al 寄存器
void write_m_IMR(void);         // 将 al 寄存器的值写入主片 IMR 中
void read_s_IMR(void);          // 读从片 IMR 寄存器的值，返回值存入 al 寄存器
void write_s_IMR(void);         // 将 al 寄存器的值写入从片 IMR 中
void set_m_smm(void);           // 设置主片工作在特殊屏蔽模式

#ifdef __cplusplus
}
#endif

#endif

